//
//  PriorityQueue.h
//  TecnicheDiProgrammazione
//
//

#ifndef TecnicheDiProgrammazione_PriorityQueue_h
#define TecnicheDiProgrammazione_PriorityQueue_h
#include "TInfo.h"

typedef struct SPQueue TPQueue;

TPQueue *priorityqueue_create();
void priorityqueue_destroy(TPQueue *q);
TInfo* priorityqueue_get_maximum(TPQueue *q);
TInfo priorityqueue_remove_maximum(TPQueue *q);
void priorityqueue_change_priority(TPQueue *q, int elem, int newPriority);
void priorityqueue_insert(TPQueue *q, TInfo info);

#endif
